package proyecto;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.Iterator;
import jss2.LinkedBinarySearchTree;

public class ListaVentas {

	private LinkedBinarySearchTree<Venta> arbolV;
	
	public ListaVentas(){
		arbolV = new LinkedBinarySearchTree<Venta>();
	}
	
	public void anadirVenta(Venta pVenta){
		if (pVenta != null){
			this.arbolV.addElement(pVenta);
		}
		else{
			///
		}
	}
	
	public double calcularGananciaDia(ListaArticulos inventario){
		Iterator<Venta> itr = this.arbolV.iteratorPreOrder();
		Venta actual = itr.next();
		double ganancia = 0;

		while (actual != null){
			ganancia = ganancia + actual.calcularGanancia(inventario);
			actual = itr.next();
		}
		return ganancia;
	}
	
	public Venta buscarVentaId(int pId) {
		Iterator<Venta> itr = this.arbolV.iteratorPreOrder();
		boolean encontrado = false;
		Venta actual = itr.next();

		while ((actual != null) | encontrado){
			if (actual.comprobarId(pId)){
				encontrado = true;
			}
			else{
				actual = itr.next();
			}
		}
		
		if (!encontrado){
			return null;
		}
		else{
			return actual;
		}
	}
	
	
	public void exportarVentas(File pArchivo) throws IOException {
		///exportamos las facturas del dia actual
		try{
		    BufferedWriter bw = new BufferedWriter(new FileWriter(pArchivo));
		    Iterator<Venta> itr = this.arbolV.iteratorPreOrder();
		    
		  //ID;FECHA;EMPLEADO			 
			Venta actual = itr.next();
			while (actual != null){
			    bw.write(actual.toString());
				actual = itr.next();
			}    
			bw.close();
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}

	public void mostrarUnDia(int dia, int mes, int ano){
		//una vez importado en el arbol.
		
	}
	
	public void mostrarDesdeDia(int pDia, int pMes, int pAno){
		//una vez importado en el arbol.
		
	}
}
